Resource allocation for OFDMA systems with half-duplex relay(s) and corresponding transmission protocol

ABSTRACT

A transmission protocol is provided for wireless communications in an OFDMA system that uses a rateless code and techniques are provided for dynamically adjusting the subcarrier resources allocated to an OFDMA relay node so that the relay is used at the right time according to the instantaneous channel state information (CSI). As a result, a higher throughput is achieved between source and destination nodes based on a low complexity algorithm for determining when relay assistance is helpful for completing a transmission between the source and destination nodes.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of co-pending U.S. patent application Ser. No. 12/020,781, filed on Jan. 28, 2008, entitled “RESOURCE ALLOCATION FOR OFDMA SYSTEMS WITH HALF-DUPLEX RELAY(S) AND CORRESPONDING TRANSMISSION PROTOCOL”. The entireties of all prior-filed applications listed herein are hereby incorporated by reference.

TECHNICAL FIELD

The present disclosure relates generally to techniques and a transmission protocol for orthogonal frequency-division multiple-access (OFDMA) wireless communications systems that distribute the transmission of message(s) from a source node to a destination node using one or more half-duplex relay nodes.

BACKGROUND

In the area of wireless communication systems, the notion of using a relay channel for distributing a transmission from a source node to a destination node is a conventional idea, introduced as early as the 1970s; however, due to continued advancements in the capabilities of wireless systems over the decades, the notion has received renewed attention.

In this regard, cooperative communication through relay nodes has been proven to enhance the capacity of the communications channel, and has enabled a new architecture called virtual Multiple Inputs, Multiple Outputs (MIMO) arrays. In addition, data transmission through relay networks in wireless communication systems has been observed to have high spectral efficiency. As a result, for instance, the IEEE 802.11 Task Group and 802.16 Task Group are collaborating with respect to the standardization of certain relay network protocols.

However, there are number of limitations of current architectures for which improvement is generally desired. For instance, some conventionally known relay systems have assumed a full duplex relay. With a full duplex relay, the relay node is assumed to be able to transmit and receive at the same time and on the same channel.

Yet, such a full duplex relay system with perfect echo cancelation proves difficult to implement in practice in real systems. Instead, with real systems, sometimes orthogonal channels are used to isolate the transmitted and received signals at the relay node. Under such circumstances of orthogonal, or independent, transmit and receive channels, the relay node is referred to as a half duplex relay. Such half duplex relays have been considered in the context of frequency division, time division, code division and general orthogonal division. In particular, to exploit the frequency selectivity of broadband wireless systems, orthogonal frequency-division multiple-access (OFDMA) systems have been proposed for half duplex relay networks.

The problem remains, however, as a result of the constraints introduced by a half duplex relay node relative to a full duplex relay node, the use of the half duplex relay node may enhance or degrade the system throughput depending on the instantaneous channel states between the source and relay, the relay and destination as well as the source and destination. This is because when a half duplex relay node is used to transmit the message to the destination, the source node cannot transmit on the same time/frequency slot and therefore, there is overhead, or a cost, associated with using the relay.

As a consequence, if the relay is used at the wrong time, e.g., when the channel state of the relay-destination pair is considerably worse than the channel state of the source-destination pair, there is an observed degradation in the overall system throughput. Hence, the ability to dynamically adjust subcarrier resources allocated to an OFDMA half duplex relay node so that the relay is used only at the right time is desirable.

Conventional approaches that have sought a solution to this problem have dynamically scheduled the usage of the relay node in a centralized manner in which full knowledge of the channel states between any two nodes in the network is required. However, perfect knowledge of the channel states at various nodes is very difficult to obtain in a distributed network. In addition, superposition coding is assumed at the source and relay node, which is not scalable as the number of nodes in the relay networks increases in terms of both the processing complexity and the signaling overhead involved in collecting all the channel state information (CSI) for the nodes. Furthermore, with such conventional approaches, the presence or absence of relays is not transparent to the source node.

Accordingly, there exists a need for improved techniques for OFDMA wireless communications systems to transmit message(s) from a source node to a destination node by scheduling resources to one or more half-duplex relay nodes in an optimal manner.

SUMMARY

The following presents a simplified summary of the claimed subject matter in order to provide a basic understanding of some aspects of the claimed subject matter. This summary is not an extensive overview of the claimed subject matter. It is intended to neither identify key or critical elements of the claimed subject matter nor delineate the scope of the claimed subject matter. Its sole purpose is to present some concepts of the claimed subject matter in a simplified form as a prelude to the more detailed description that is presented later.

A transmission protocol is provided for wireless communications in an OFDMA system that uses a rateless code and techniques are provided for dynamically adjusting the subcarrier resources allocated to an OFDMA relay node so that the relay is used at the right time according to the instantaneous channel state information (CSI). As a result, a higher throughput is achieved between source and destination nodes based on a low complexity algorithm for determining when relay assistance is helpful for completing a transmission between the source and destination nodes.

BRIEF DESCRIPTION OF THE DRAWINGS

Various non-limiting embodiments are further described with reference to the accompanying drawings in which:

FIG. 1 is a high-level flow diagram illustrating exemplary, non-limiting communications for a relay node in a wireless communications system;

FIG. 2 is a high-level flow diagram illustrating exemplary, non-limiting communications for a destination node in a wireless communications system;

FIG. 3 is a high-level block diagram of a relay channel model for a wireless communication system;

FIG. 4 is a block diagram illustrating relationships among a transmission event, a packet transmission and fading slot;

FIG. 5 illustrates exemplary, non-limiting aspects of source communications in accordance with a transmission protocol provided in various embodiments;

FIGS. 6 and 7 illustrate exemplary, non-limiting aspects of relay communications in accordance with a transmission protocol provided in various embodiments;

FIG. 8 illustrates exemplary, non-limiting aspects of destination communications in accordance with a transmission protocol provided in various embodiments;

FIGS. 9, 10 and 11 illustrate various examples of operation of the acknowledgment messages sent in connection with different non-limiting messaging scenarios for transmission events;

FIGS. 12, 13, 14 and 15 illustrate performance benefits in terms of throughput from the source to destination in accordance with a half-duplex relay communicating according to the various embodiments;

FIG. 16 is a block diagram of an example operating environment in which various aspects described herein can function; and

FIG. 17 illustrates an example wireless communication network in which various aspects described herein can be utilized.

DETAILED DESCRIPTION

The claimed subject matter is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the claimed subject matter. It may be evident, however, that the claimed subject matter may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the claimed subject matter.

As used in this application, the terms “component,” “system,” and the like are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. Also, the methods and apparatus of the claimed subject matter, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the claimed subject matter. The components may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal).

As discussed in the background, more optimal solutions are desired for dynamically allocating subcarrier resources in wireless OFDMA systems with a half duplex relay node, i.e., where the relay node cannot transmit and receive simultaneously on the same frequency. In brief, the use of relay node may enhance or degrade the system throughput depending on the instantaneous channel states between the source and relay, the relay and the destination as well as the source and destination. Hence, various embodiments herein dynamically adjust the resource, i.e., subcarrier, allocated to the relay node so that the relay is used at optimal times according to the instantaneous channel states.

Conventional attempts have dynamically scheduled the usage of the relay node in a centralized manner in which full knowledge of the channel states between any two nodes in the network is required. However, in practice, perfect knowledge of the channel states at various nodes is rarely available and difficult to obtain.

Accordingly, in various embodiments described in more detail below, distributed resource allocation algorithms are provided for OFDMA systems with half-duplex relays by employing a rateless code as part of the transmission protocol. Based on the ACK/NAK exchanges between the source, destination and relay, the proposed algorithm iteratively allocates resources to the source and relay, and converges to a close-to-optimal allocation within a finite number of steps in accordance with a practical tradeoff.

Referring to FIG. 1, a high-level flow diagram of a wireless communication system is illustrated from the perspective of a relay node. At 100, the relay receives symbol(s) of a current message transmitted using a rateless codebook from a source node. At 110, when decodable by the relay, an ACK message is transmitted to the destination node. At 120, if the destination node can be assisted by the relay, the destination node transmits ACK message to source node. At 130, the relay decodes and re-encodes the message using same codebook as source node. At 140, the symbols of re-encoded message are stored in a first in first out stack of the relay. At 150, the relay transmits the symbols of the re-encoded message to the destination.

Referring to FIG. 2, a high-level flow diagram of a wireless communication system is illustrated from the perspective of a destination node. At 200, the destination node receives part or all of current message from a source node according to transmission protocol using a rateless code. At 210, if the destination node can decode the current message before the relay, the destination transmits an ACK message to the source node. At 220, if the destination node cannot decode current message before the relay, the destination node determines if the memory stack of the relay is full. If so, at 230, the source destination link is relied upon. At 240, if the memory stack is not full, the destination indicates to the relay node to decode and re-encode the current message, and the destination dynamically allocates subcarrier resources for transmitting to the destination. At 250, the destination receives and decodes the current message as a combination of message information received from both the source node and the relay node.

Advantageously, the resource allocation algorithms performed according the embodiments described herein have low computational complexity compared to brute force alternatives and, as shown below, such allocation of resources has a provable convergence property. Asymptotic throughput performance of the proposed algorithm is also derived in the detailed description below. In this respect, a significant throughput gain is achieved as compared to a point-to-point baseline system without relay as well as compared to a baseline system with relay using random subcarrier allocation.

As mentioned, in one aspect, a distributed resource allocation algorithm is provided for OFDMA systems with half-duplex relay node(s) by employing a rateless code in the transmission protocol. Distributed algorithms described herein include two main parts: (1) the transmission protocol design for the rateless code and (2) the subcarrier allocation algorithm to allocate subcarrier resources to the half duplex relay node. As mentioned, the proposed resource allocation algorithm dynamically adjusts the resource (subcarrier) allocated to the relay node in a distributed manner based on the ACK/NAK exchanges between the source, destination and relay.

Beneficially, embodiments make use of all the locally available information at the destination node without requiring any explicit feedback of CSI information. Based on the locally available information, the algorithm iteratively converges to a close-to-optimal allocation within finite steps, providing performance benefits.

As a roadmap for what follows, some notation is first set forth for general context of description. Next, a relay channel model is described for reference in connection with the described embodiments. The transmission protocol design and the problem formulation with respect to subcarrier selection are then discussed, followed by a variety of embodiments employing the close-to-optimal selection algorithm described herein. Some representative performance considerations are then examined and some empirical results are given that can be compared with other selection algorithms to demonstrate benefits of employing the subcarrier selection techniques.

The following notation conventions are adopted for consistency and clarity herein. Boldface upper case letters denote matrices, boldface lower case letters denote column vectors, and lightface italics denote scalers. C^(n×m) denotes the set of n×m matrices with complex-valued entries and the superscript denotes (.)^(H) denotes Hermitian transpose operation. The matrix I_(n) denotes the n×n identity matrix. Expressions p_(x)(X) and px denote the probability density function (pdf) of the random variable X. The expectation with respect to X is written as E_(x)[•] or simply as E[•].

With respect to the relay channel model adopted herein, the OFDMA based half-duplex relay channel model is explained with reference to FIG. 3 illustrating a wideband relay network over frequency selective fading channels with a single source node, relay node and destination node as shown for simplicity in FIG. 3. Each node, including the source 300, the relay 310 and the destination 320, is equipped with a single half-duplex radio and a single antenna (not shown). In the general scenario, the source node 300 wants to communicate to the destination node 320 over a slow fading channel. For example, the relay node 310 can use the Decode-and-Forward (DF) protocol to assist the information transmission between the source node 300 and the destination node 320. As part of the transmission, acknowledgment messages are sent after successful transmission of data. Of note in FIG. 3 are the ACK message from destination node 320 to source node 300, denoted Ack_(DS), the ACK message from destination node 320 to relay node 310, denoted Ack_(DR) and the ACK message from relay node 310 to destination node 320, denoted Ack_(RD).

Let xεC^(N×1) denote the signals transmitted by the source node 300, where N denotes the total number of subcarriers. Signals transmitted by the relay node 310 are denoted by x¹εC^(N×1). The variances of x and x¹ are normalized to unity. Received signals at the relay node 310 and the destination node 320 are denoted by y¹εC^(N×1) and yεC^(N×1), respectively. The following Equations (1), (2) and (3) show the relationship among those signals: y=H ^(SD) Sx+H ^(RD) Sx ¹ +z  (1) y ¹ =H ^(SR) Sx  (2) S+ S=I _(N)  (3) where H^(SD), H^(RD), H^(SR)εC^(N×N) are diagonal matrices with the i^(th) diagonal elements equal to the fading coefficients of Source-Destination (SD), Relay-Destination (RD), and Source-Relay (SR) channels in the i^(th) subcarrier respectively, and zεC^(N×1) and z¹εC^(N×1) represent the additive noise with normalized power. S and S are the i^(th) diagonal selection matrices. Let S_(A) and S_(A) ^(C) denote the set of subcarriers allocated to the source node 300 and the relay node 310 for transmissions, respectively. Then, the i^(th) diagonal element of S equals to 1 when the i^(th) subcarrier is in the set S_(A) and 0 otherwise. S selects the subcarriers for the relay to transmit (denoted as S_(A) ^(C)), and Equation (3) establishes the relationship between S and S.

The following additional assumptions are made herein for various applicable embodiments. First, the receiver at the relay node 310 is assumed to have perfect CSI knowledge of the SR link only, and the receiver at the destination node 320 is assumed to have perfect CSI knowledge of the SD and RD links, but no CSI knowledge of the SR link. Uniform power allocation is assumed since transmitters have no CSI knowledge of the channels. Secondly, the relay 310 is assumed to be able to transmit and receive on different subcarriers simultaneously, where the transmitted and received signals do not couple together. Furthermore, for each link, the fading coefficients of the subcarrier are assumed to be independent and identically distributed (i.i.d.) complex symmetric random Gaussian variables with zero-mean. It is noted that any of the embodiments herein can be directly used in correlated subcarrier scenarios as well. Slow fading channels are considered where the aggregate CSI H=(H^(SD),H^(RD),H^(SR)) remains quasi-static within a fading block.

Having set forth the relay model above, a low complexity protocol for the transmission of rateless codes is next introduced, from which the resources allocation problem can be formulated as an integer programming problem, which is then solved below in various embodiments.

Thus, in one aspect, embodiments provide a transmission protocol using rateless codes. In this regard, a rateless codebook containing 2^(l) codewords at the transmitter (to deliver l information bits) is considered where each codeword is infinitely long. FIG. 4 generally illustrates the notions of a packet transmission 410, a transmission event 420, and a fading slot 400. For easy illustration, a packet transmission 420 is defined to be the event for the transmitter to successfully deliver one packet (part of the complete codeword) to the receiver. A transmission event 410 is defined to have occurred when the destination node successfully decodes one codeword delivered by the source (and hence, obtained l information bits). A fading slot 400 is defined to be the duration during which the aggregate CSI H remains quasi-static (which may contain multiple transmission events A, B, . . . , X, . . . ). Further, N_(L) is defined to be the number of transmission events 410 per fading slot 400.

By the definition of S_(A) and S_(A) ^(C), S_(A)∪S_(A) ^(C) gives the entire subcarriers, S_(T). To ensure half-duplex operation, the following relation pertains: S_(A)∩S_(A) ^(C)=Ø. The protocol at the source node can be described with reference to FIG. 5. After start 500, for every transmission event, the encoder at the source selects one of the 2^(l) codewords (with infinite block size) to transmit at 520 based on l information bits over the set of subcarriers S_(A). The destination node sends an acknowledgement (ACK) to the source node (Ack_(DS)) when l≦Σ_(i=0) ^(t)I(x_(i); y_(i)|H) where t is the current packet index in a transmission event. A check for whether Ack_(DS) has been received occurs at 510. If Ack_(DS) has not been received, the source node continuously transmits the encoded symbols (next part of the long codeword) until Ack_(DS) is received eventually.

The protocol at the relay node can be described with reference to FIGS. 6 and 7. In FIG. 6, after start 600, starting with the first message at 610, the relay node keeps receiving the symbols transmitted by the source over S_(A) until enough mutual information l≦Σ_(i=0) ^(t)I(x_(i); y_(i) ¹|H^(SR) has been collected to decode the current message at 620. If so, it sends an acknowledge to the destination Ack_(RD) at 630. If the destination could use help from the relay, at 640, a quick response from the destination is sent immediately as indicated by the acknowledgement Ack_(DS). The relay will then decode and re-encode the decoded message using the same codebook as the source node at 650, and move on to the next message.

Then, as shown in FIG. 7, after start 700, beginning with the first message at 710, the left-over symbols in the re-encoded codeword are stored in the First-In-First-Out (FIFO) stack of the relay and transmitted at 720 to the destination node over the set of subcarriers S_(A) ^(C). Since relay and source share the same codebook, the relay knows the symbols transmitted by the source. The relay then continues to transmit symbols right after the last symbol transmitted by the source. The relay transmits the next information message in the FIFO stack at 740 when the acknowledgement from the destination, Ack_(DR), is received at 730.

The protocol at the destination node can be described with reference to FIG. 8. After start 800, message counts j and k are set to 1 at 810. If the destination can decode the jth message, at 820, then the jth message is decoded at 830, after which the j message count is incremented for the next message. Next, based on whether help from the relay is desired for decoding at 840, an Ack_(DR) message is transmitted by the destination to the relay at 850.

Next, it is determined whether the kth message can be decoded without the relay's help at 860. The flow also proceeds to 860 if the jth message cannot be decoded at 820. If the kth message can be decoded by the destination without the relay's help, then at 890, an Ack_(DS) message is sent to the source, the k message count is incremented and the flow returns to 820 for the next round of the process for the next messages. If, at 860, the kth message cannot be decoded without the relay's help, then it is determined whether relay has received an Ack_(RD) message has been received from the relay. If not, then the flow returns to 820 for the next round of the process for the current messages for decoding as defined by the j and k message counts.

If, at 870, an Ack_(RD) message has been received by the destination from the relay, then at 880, if the FIFO stack is not full, then the flow proceeds to 890, where an Ack_(DS) message is sent to the source, the k message count is incremented and the flow returns to 820 for the next round of the process for the next messages. If the FIFO stack is full, then the flow proceeds directly to 820.

In this regard, information received the destination node contains two parts. The first part is transmitted by the source over S_(A) ^(C). As long as the destination node can decode the message before the relay node, Ack_(DS) will be sent (at 890). If it is not the case, i.e., the relay can decode before the destination indicated by Ack_(RD) the destination will determine whether the FIFO stack of the relay node is full. When the relay is transmitting k-th message, and the source is transmitting the j-th message, in one embodiment, the destination determines that the FIFO stack is full when j^(−k) exceeds the size of the FIFO stack d. If it is full, which means no more messages can be stored in the relay, the destination will rely on the SD link to receive the current information and declare an Ack_(DS) message later when the information can be decoded successfully.

Otherwise, the destination will send the Ack_(DS) message immediately to inform the source node to send a new message and at the same time, indicate to the relay node to decode and store the current re-encoded message in the FIFO. The remaining part of the current message is transmitted by the relay node over S_(A). With the help of the relay node, the destination node can decode the message based on the two parts of received symbols. The first part is transmitted by the source and the second part is the extra information transmitted by the relay. The Ack_(DR) message is produced when the destination has accumulated enough total mutual information from the two parts of received symbols to decode the message.

The following examples show the relation between three acknowledgements (ACKs). For instance, as shown in FIG. 9, a transmission event 910 is shown during a fading slot. The relay node is able to decode the first four packets before the destination can.

For simplicity of example, not limitation on scope, the stack size d at the relay node is assumed equal to 2. Thus, for first three transmission events, the destination node knows that the stack is not full and thus send the Ack_(DS) message immediately after the Ack_(RD) message is received. However, as shown, when the source is transmitting the fourth message, the destination realizes that the stack at the relay node is full since the relay is still transmitting the first message and thus relies on the SD link instead to transmit the current message. For the fifth transmission event, the destination can decode before the relay, and only Ack_(DS) is sent.

For simplicity, the ACKs (Ack_(RD), Ack_(DS) and Ack_(DR)) are assumed to be delivered over a noiseless feedback channel between the corresponding nodes. Since the usage of a relay node (increasing the size of S_(A) ^(C)) consumes system resources (decreasing the size of S_(A)), as mentioned, the use of the relay node may contribute to performance gain or loss depending on the current CSI. Hence, in various embodiments described herein, the resources are dynamically adapted in terms of allocation to the relay, S_(A) ^(C), for optimal performance in a distributed manner without knowing the CSI at the transmitter. In the next section, the relay resource allocation design is re-formulated as an optimization problem.

With respect to the problem formulation for subcarrier selection, since the subcarrier allocation is done at the destination node only, the selection can be a function of the CSIR H_(SD), H_(RD), but not the CSI H_(SR). For notation convenience, the following definition is provided for subcarrier allocation policy.

Definition of Subcarrier Allocation Policy: A subcarrier allocation for the source node S, S_(A)(H^(SD), H^(RD)), is defined as the set of subcarriers assigned to the source for its transmission which is a function of the CSIR H^(SD),H^(RD) at the destination node D. The subcarrier allocation policy S_(A)={S_(A)(H^(SD),H^(RD))} is thus the collection of subcarrier allocations under different CSI conditions (H^(SD),H^(RD)).

Theorem I. Given an aggregate CSI H=(H^(SD),H^(RD),H^(SD)) in a fading block, the instantaneous throughput achievable by the rateless code R(H,S_(A)) (b/s/Hz) between the S and D is given by Equation (4):

$\begin{matrix} \begin{matrix} {{R\left( {H,S_{A}} \right)} = {\lim\limits_{L->\infty}\frac{L}{T\left( {H,S_{A}} \right)}}} \\ {= {\frac{1}{n_{F}}\min\left\{ {{\max\begin{Bmatrix} {{\sum\limits_{i \in S_{A}}{\log\left( {1 + {{h_{i}^{SR}}^{2}{SNR}}} \right)}},} \\ {\sum\limits_{i \in S_{A}}{\log\left( {1 + {{h_{i}^{SD}}^{2}{SNR}}} \right)}} \end{Bmatrix}},} \right.}} \end{matrix} & (4) \\ \left. {{\sum\limits_{i \in S_{A}}{\log\left( {1 + {{h_{i}^{SD}}^{2}{SNR}}} \right)}} + {\sum\limits_{j \in S_{A}^{C}}{\log\left( {1 + {{h_{j}^{RD}}^{2}{SNR}}} \right)}}} \right\} & \; \end{matrix}$ where L and T(H,S_(A)) are the number of information bits and the corresponding duration (in number of symbols) in one fading slot and n^(F) is the total number of subcarriers. A proof of Theorem I is provided in Appendix A.

Hence, the average throughput between S and D (averaged over multiple fading blocks H) is given by Equation (5): R (S _(A))=E _(H) [R(H,S _(A))].  (5)

The optimal subcarrier allocation policy for relay, S*_(A) is given by the following optimization problem in Equation (6):

$\begin{matrix} \begin{matrix} {S_{A\;}^{*} = {\arg\;{\max\limits_{S_{A}}{\overset{\_}{R}\left( S_{A} \right)}}}} \\ {= {\arg\;{\max\limits_{S_{A}}{E_{H}\left\lbrack {\frac{1}{n_{F}}\min\begin{Bmatrix} {{\max\begin{Bmatrix} {{\sum\limits_{i \in S_{A}}{\log\left( {1 + {{h_{i}^{SR}}^{2}{SNR}}} \right)}},} \\ {\sum\limits_{i \in S_{A}}{\log\left( {1 + {{h_{i}^{SD}}^{2}{SNR}}} \right)}} \end{Bmatrix}},} \\ \begin{matrix} {{\sum\limits_{i \in S_{A}}{\log\left( {1 + {{h_{i}^{SD}}^{2}{SNR}}} \right)}} +} \\ {\sum\limits_{j \in S_{A}^{C}}{\log\left( {1 + {{h_{j}^{RD}}^{2}{SNR}}} \right)}} \end{matrix} \end{Bmatrix}} \right\rbrack}}}} \end{matrix} & (6) \end{matrix}$

For notational convenience, λ^(T)=[λ₁, λ₂, . . . , λ_(n) _(F) ] is defined, where λ₁=1 when the i-th subcarrier is in the set S_(A), and 0 otherwise. A is denoted to be the collection of all λ under different channel conditions. The optimization problem can thus be represented as Equation (7):

$\begin{matrix} \begin{matrix} {\Lambda^{*} = {\arg\;{\max\limits_{\Lambda}{\overset{\_}{R}(\Lambda)}}}} \\ {= {\arg\;{\max\limits_{\Lambda}{E_{H}\left\lbrack {\frac{1}{n_{F}}\min\begin{Bmatrix} {{\max\left\{ {{\lambda^{T}C^{SR}},{\lambda^{T}C^{SD}}} \right\}},} \\ {{\lambda^{T}C^{SD}} + {\left( {1 - \lambda} \right)^{T}C^{RD}}} \end{Bmatrix}} \right\rbrack}}}} \end{matrix} & (7) \end{matrix}$ where C^(SR)=[C₁ ^(SR), . . . , C_(n) _(F) ^(SR)], C^(SD)=[C₁ ^(SD), . . . , C_(n) _(F) ^(SD)], C^(RD)=[C₁ ^(RD), . . . , C_(n) _(F) ^(RD)] respectively, with C_(i) ^(A)=log(1+|h_(i) ^(A)|²SNR) and 1 stands for the n_(F)×1 all-one vector.

Solving the above optimization problem of Equation (7) can be non trivial because the subcarrier allocation λ(H^(SD),H^(RD)) cannot be a function of the CSI H^(SR) because, as mentioned, the CSI H^(SR) is not available at the destination node. Accordingly, below, subcarrier allocation solutions are considered for two cases, namely small N_(L) and large N_(L), in which knowledge is based on H^(SD) and H^(RD).

In further regard to the subcarrier selection policy, the optimal subcarrier selection policy can be found based on solving the optimization problem given by Equation (7). For ease of illustration, two cases are set forth below according to the number of transmission events during a fading slot.

First, with respect to subcarrier selection policy for small N_(L), the number of transmission events during a quasi-static fading slot is limited and the destination cannot estimate the CSI of the SR link based on the previous transmission. To utilize the knowledge of H^(SD) and H^(RD) let h(λ)=E _(H) _(SR) [min{max{λ^(T) C ^(SR),λ^(T) C ^(SD)},λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD)}].

The optimization problem of Equation (7) is then equivalent to:

$\begin{matrix} \left. {{\arg\;{\max\limits_{\lambda}{h\left( {\lambda,H^{SD},H^{RD}} \right)}}}{{{s.t.\mspace{14mu}\lambda_{i}} \in \left\{ {0,1} \right\}},{\forall i}}} \right) & (8) \end{matrix}$

Lemma 1: h(λ,H^(SD),H^(RD)) can be expressed as:

$\begin{matrix} {\left. {{h\left( {\lambda,H^{SD},H^{RD}} \right)} = {{\lambda^{T}C^{SD}{\int_{0}^{\lambda^{T}C^{SD}}{{p_{y}(y)}{\mathbb{d}y}}}} + {\int_{\lambda^{T}C^{SD}}^{{\lambda^{T}C^{SD}} + {{({1 - \lambda})}^{T}C^{{RD}\;}}}{{{yp}_{y}(y)}{\mathbb{d}y}}} + {\lambda^{T}C^{SD}} + {\left( {1 - \lambda} \right)^{T}C^{RD}}}} \right){\int_{{\lambda^{T}C^{SD}} + {{({1 - \lambda})}^{T}C^{RD}}}^{\infty}{{p_{y}(y)}{\mathbb{d}y}}}} & (9) \end{matrix}$ Where y=λ^(T)C^(SR) and p_(y)(y) denote the p.d.f. of the random variable y. A proof of Lemma 1 can be found in Appendix B below.

Applying Lemma 1, the first and the second derivative of h(λ) are taken with respect to λ_(i), obtaining Equations (10) and (11) as follows:

$\begin{matrix} {\frac{\mathbb{d}{h\left( {\lambda,H^{SD},H^{RD}} \right)}}{\mathbb{d}\lambda_{i}} = {{C_{i}^{SD}{\int_{0}^{\lambda^{T}C^{SD}}{{p_{y}(y)}{\mathbb{d}y}}}} + {\left( {C_{i}^{SD} - C_{i}^{RD}} \right){\int_{{\lambda^{T}C^{SD}} + {{({1 - \lambda})}^{T}C^{RD}}}^{\infty}{{p_{y}(y)}{\mathbb{d}y}}}}}} & (10) \\ {\frac{\mathbb{d}^{2}{h\left( {\lambda,H^{SD},H^{RD}} \right)}}{\mathbb{d}\lambda_{i}^{2}} = {{C_{i}^{{SD}^{2}}{p_{y}\left( {\lambda^{T}C^{SD}} \right)}} - {\left( {C_{i}^{SD} - C_{i}^{RD}} \right)^{2}{p_{y}\left( {{\lambda^{T}C^{SD}} + {\left( {1{–\lambda}} \right)^{T}C^{RD}}} \right)}}}} & (11) \end{matrix}$

If C_(i) ^(SD)−C_(i) ^(RD)≧0, then h(λ) is a strictly increasing function with respect to λ_(i), since dh(λ)/dλ_(i)>0. As a result, the optimal choice of is λ_(i) is λ_(i) ^(å)=1. The physical interpretation is when the channel condition of SD link is stronger than RD link, the best strategy is to allocate the resource (i-th subcarrier) for the source to transmit.

On the other hand, if C_(i) ^(SD)−C_(i) ^(RD)<0, then h(λ) is a monotonic function in λ_(i). The optimal solution λ^(å) is given by the following iterative algorithm (e.g., by gradient method) of Equations (12) and (13):

$\begin{matrix} {\lambda_{i}^{({n + 1})} = {{\left\lbrack {\lambda_{i}^{(n)} + {ɛ_{i}^{(n)}\frac{\mathbb{d}{h(\lambda)}}{\mathbb{d}\lambda_{i}}}} \right\rbrack^{P}\mspace{14mu}{when}\mspace{14mu}\frac{\mathbb{d}^{2}{h(\lambda)}}{\mathbb{d}\lambda_{i\;}^{2}}} < 0}} & (12) \\ {\lambda_{i\;}^{({n + 1})} = {{\left\lbrack {\lambda_{i}^{(n)} - {ɛ_{i}^{(n)}\frac{\mathbb{d}{h(\lambda)}}{\mathbb{d}\lambda_{i}}}} \right\rbrack^{P}\mspace{14mu}{when}\mspace{14mu}\frac{\mathbb{d}^{2}{h(\lambda)}}{\mathbb{d}\lambda_{i}^{2}}} \geq 0}} & (13) \end{matrix}$ where n is the iteration number, ε_(i) ^((n)) is a positive parameter to regulate the step size of iterations and [•]^(P) is defined as the projection operation to map λ_(i) into the real value between 0 and 1.

With respect to subcarrier selection policy for large N_(L) (meaning that there are sufficiently large transmission events within a quasi-static fading block). Let g(λ)=min{max{λ^(T) C ^(SR),λ^(T) C ^(SD)},λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD)}.

g(λ) can be evaluated under the following three conditions.

Case 1: D can decode the packet (sending out Ack_(DS)) before R does. In this case, we have λ^(T)C^(SR)≦λ^(T)C^(SD) and hence, the optimization objective in Equation (7) can be reduced to Equation (14): g(λ)=λC ^(SD)  (14)

Case 2a: R can decode the packet (sending out Ack_(RD)) before D does and λ^(T) C ^(SR)≦λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD).

In this case, the optimization objective in Equation (7) becomes Equation (15): g(λ)=λ^(T) C ^(SR)  (15)

Case 2b: R can decode the packet (sending out Ack_(RD)) before D does and λ^(T) C ^(SR)>λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD).

In this case, the simplified optimization objective in Equation (7) is given by Equation (16): g(λ)=λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD)  (16)

Hence, combining Equations (14), (15) and (16), the optimization objection g(λ) can be expressed as Equation (17):

$\begin{matrix} {{\arg\;{\max\limits_{\lambda}{g(\lambda)}}} = \left\{ \begin{matrix} {{\lambda^{T}C^{SD}},} & {{for}\mspace{14mu}{Case}\mspace{14mu} 1} \\ {{\lambda^{T}C^{SR}},} & {{for}\mspace{14mu}{Case}\mspace{14mu} 2a} \\ {{{\lambda^{T}\left( {C^{SD} - C^{RD}} \right)} + {1^{T}C^{{RD}\;}}},} & {{for}\mspace{14mu}{Case}\mspace{14mu} 2b} \end{matrix} \right.} & (17) \\ {{{s.t.\mspace{14mu}\lambda_{i}} \in \left\{ {0,1} \right\}},{\forall i}} & \; \end{matrix}$

Problem (17) is an integer programming problem, since the optimization variables λ are restricted to integers. An optimal solution of the combinatorial optimization problem is in general an NP-hard problem. In order to reduce the complexity, first the integer variables λ in (17) are relaxed to real variables.

The optimization objective function g(λ) is piece-wise linear in λ, and thus a continuous convex function of λ (but not differentiable). As a result, traditional gradient-type search cannot always be applied here. Nevertheless, it is possible to find a search direction based on what is known as a subgradient. Define the subgradient of a function as:

As defined herein, a vector f is a subgradient of g(λ) at λ, if for all λ′, g(λ′)≧g(λ)+f ^(T)(λ′−λ)  (18)

The term subgradient is a generalization of gradient for non-differentiable functions. Intuitively speaking, f is a subgradient if the linear function with slope f passing through (λ,g (λ)) lies entirely below g(λ). The subgradient of the optimization objective g(λ) with respect to λ is given by the following lemma.

Lemma 2. The subgradient for the function g(λ) with respect to λ is:

$\begin{matrix} {f = \left\{ \begin{matrix} {C^{SD},} & {{for}\mspace{14mu}{Case}\mspace{14mu} 1} \\ {C^{SR},} & {{for}\mspace{14mu}{Case}\mspace{14mu} 2a} \\ {{C^{SD} - C^{RD}},} & {{for}\mspace{14mu}{Case}\mspace{14mu} 2b} \end{matrix} \right.} & (19) \end{matrix}$

A proof of Lemma 2 is given in Appendix C below.

Applying Lemma 2, the iterative algorithm for the optimization problem (17) based on a subgradient method is given below in Equation (20): λ^((n+1))=[λ^((n))+α^((n)) f ^((n))]^(Q)  (20)) where n is the iteration number, α^((n)) is a sequence of scalar step-sizes, [•]^(Q) is defined as the projection operation to map the variable λ into the feasible set, given by 0° λ° 1 and f^((n)) is the subgradient direction for the n-th iteration. The above subgradient method is guaranteed to converge to the optimal λ as long as α^((n)) is chosen to be sufficiently small. To choose the step-size, a non-limiting criterion that can be used is that α^((n)) must be square summable, but not absolute summable. Since the norm of f is bounded above, the following choice is made:

$\alpha^{(n)} = \frac{\beta}{n}$ for some constant β is guaranteed to converge to the optimal g(λ^(å)).

However, C^(SR) is not available at the destination node and hence, the subgradient cannot be computed at the destination node when case 2a happens. To get around this problem,

${t\left( {H,\;\lambda} \right)} = \frac{l}{\lambda^{T}C^{SR}}$ is defined to be the time for the source to transmit one codeword (l bits) successfully to the relay with the instantaneous channel realization H and the subcarrier allocation policy λ. In fact, the destination node could measure this parameter by measuring the time difference between acknowledgements as shown in FIG. 10 and FIG. 11 with transmission events 1010 and 1110, respectively. Without loss of generality, in the first n−1 transmission events, the destination is assumed able to measure t(H,λ⁽¹⁾), t(H,λ⁽²⁾), . . . , t(H,λ^((n−1))). It is noted that C^(SR) and t(H,λ) are related by Equation (21):

$\begin{matrix} {{{\begin{bmatrix} \lambda^{(1)} \\ \lambda^{(2)} \\ \ldots \\ \lambda^{({n - 1})} \end{bmatrix}C^{SR}} = \begin{bmatrix} \frac{l}{t\left( {H,\lambda^{(1)}} \right)} \\ \frac{l}{t\left( {H,\lambda^{(2)}} \right)} \\ \ldots \\ \frac{l}{t\left( {H,\lambda^{({n - 1})}} \right)} \end{bmatrix}},} & (21) \end{matrix}$ As a result, during the n-th iteration, the unknown parameter C^(SR) can be estimated from {t(H,λ⁽¹⁾), t(H,λ⁽²⁾), . . . , t(H,λ^((n−1)))} with Ĉ^(SR) given by Equation (22):

$\begin{matrix} {{\hat{C}}^{SR} = {\begin{bmatrix} \lambda^{(1)} \\ \lambda^{(2)} \\ \ldots \\ \lambda^{({n - 1})} \end{bmatrix}^{\dagger}\begin{bmatrix} \frac{l}{t\left( {H,\lambda^{(1)}} \right)} \\ \frac{l}{t\left( {H,\lambda^{(2)}} \right)} \\ \ldots \\ \frac{l}{t\left( {H,\lambda^{({n - 1})}} \right)} \end{bmatrix}}} & (22) \end{matrix}$ where [•]^(†) denotes the pseudo-inverse operation of the matrix. Based on Equation (22), the subgradient could be computed for the n-th step and the subcarrier allocation λ^((n)) can be updated. It is noted that since each iteration requires new observations {t(H,λ⁽¹⁾), t(H,λ⁽²⁾), . . . , t(H,λ^((n−1)))}, the solution implicates large N_(L).

Finally, the above analysis considers the cases when λ can be relaxed to the real values. If λ is restricted to integers (or in other words, if time-sharing is not allowed over the subcarriers), an extra procedure can be used to round the updated λ^((n+1)) to integers.

With respect to an asymptotic performance analysis of the results of the above protocol and selection policy, the asymptotic average throughput can be derived between S and D ( R(S*_(A))) using the optimal subcarrier selection policy S*_(A) based on renewal process. Let the multiple transmission events in the k-th fading slot be a process event. Then, define T_(k)(H_(k),S_(A)) to be the lifetime of the k-th event in the renewal process and define K to be the number of events. This results in we have

${\overset{\_}{R}\left( S_{A}^{*} \right)} = {{E_{H}\left\lbrack {R\left( {H,S_{A}^{*}} \right)} \right\rbrack} = {\frac{1}{n_{F}}{\lim\limits_{K->\infty}\frac{KL}{\sum\limits_{k\; 1}^{K}{T_{k}\left( {H_{k},S_{A}^{*}} \right)}}}}}$

Also, it is known that

${\lim\limits_{K->\infty}\frac{KL}{\sum\limits_{k = 1}^{K}{T_{k}\left( {H_{k},S_{A}^{*}} \right)}}} = \frac{L}{\mu}$ where μ=E_(H)[T(H,S*_(A))] is the expected time to transmit L bits averaged over multiple fading blocks. Substituting Equation (4) into the expression, Equation (24) results:

$\begin{matrix} {{E\left\lbrack {T\left( {H,S_{A}^{*}} \right)} \right\rbrack} = {{{LE}\left\lbrack \left\{ {\min\begin{Bmatrix} \begin{matrix} {{\max\begin{Bmatrix} {{\sum\limits_{i \in S_{A}^{*}}{\log\left( {1 + {{h_{i}^{SR}}^{2}{SNR}}} \right)}},} \\ {\sum\limits_{i \in S_{A}^{*}}{\log\left( {1 + {{h_{i}^{SD}}^{2}{SNR}}} \right)}} \end{Bmatrix}},} \\ {{\sum\limits_{i \in S_{A}^{*}}{\log\left( {1 + {{h_{i}^{SD}}^{2}{SNR}}} \right)}} +} \end{matrix} \\ {\sum\limits_{j \in S_{A}^{C,*}}{\log\left( {1 + {{h_{j}^{RD}}^{2}{SNR}}} \right)}} \end{Bmatrix}} \right\}^{- 1} \right\rbrack}.}} & (23) \end{matrix}$

In general, Equation (23) is difficult to obtain in closed form since the subcarrier set S*_(A) depends on the relations of three random vectors. For simplicity, the signal strength of the SR, RD, and SD links are assumed to have the following relationships σ_(SR) ²=σ_(RD) ² σ_(SD) ². In such scenario, the communication system mainly relies on the SR and RD links to transmit the information and the expectation of Equation (24) can be simplified as Equation (24):

$\begin{matrix} {{{LE}\left\lbrack \left\{ {\min\begin{Bmatrix} {{\max\begin{Bmatrix} {{\sum\limits_{i \in S_{A}^{*}}{\log\left( {1 + {{h_{i}^{SR}}^{2}{SNR}}} \right)}},} \\ {\sum\limits_{i \in S_{A}^{*}}{\log\left( {1 + {{h_{i}^{SD}}^{2}{SNR}}} \right)}} \end{Bmatrix}},} \\ {{\sum\limits_{i \in S_{A}^{*}}{\log\left( {1 + {{h_{i}^{SD}}^{2}{SNR}}} \right)}} +} \\ {\sum\limits_{j \in S_{A}^{C,*}}{\log\left( {1 + {{h_{j}^{RD}}^{2}{SNR}}} \right)}} \end{Bmatrix}} \right\}^{- 1} \right\rbrack} \geq {\quad{{{LE}\left\lbrack \left\{ {\min\left\{ {{\sum\limits_{i \in S_{A}^{*}}{\log\left( {1 + {{h_{i}^{SR}}^{2}{SNR}}} \right)}},{\sum\limits_{j \in S_{A}^{C,*}}{\log\left( {1 + {{h_{j}^{RD}}^{2}{SNR}}} \right)}}} \right\}} \right\}^{- 1} \right\rbrack} = {\quad{{{LE}\left\lbrack {\max\left\{ {\frac{1}{\sum\limits_{i \in S_{A}^{*}}{\log\left( {1 + {{h_{i}^{SR}}^{2}{SNR}}} \right)}},\frac{1}{\sum\limits_{j \in S_{A}^{C,*}}{\log\left( {1 + {{h_{j}^{RD}}^{2}{SNR}}} \right)}}} \right\}} \right\rbrack} > {{LE}\left\lbrack \frac{1}{{\sum\limits_{i \in S_{A}^{*}}{\log\left( {1 + {{h_{i}^{SR}}^{2}{SNR}}} \right)}} + {\sum\limits_{j \in S_{A}^{C,*}}{\log\left( {1 + {{h_{j}^{RD}}^{2}{SNR}}} \right)}}} \right\rbrack}}}}}} & (24) \end{matrix}$

Based on the assumption σ_(SR) ²=σ_(RD) ² σ_(SD) ², the optimal subcarrier allocation policy S*_(A) will be choosing the i-th subcarrier for the source to transmit if |h_(i) ^(SR)|²≧|h_(i) ^(RD)|². Otherwise, the i-th subcarrier for the relay is chosen to transmit. The expectation in Equation (24) can now be calculated as Equation (25):

$\begin{matrix} {{E\left\lbrack \frac{1}{{\sum\limits_{i \in S_{A}^{*}}{\log\left( {1 + {{h_{i}^{SR}}^{2}{SNR}}} \right)}} + {\sum\limits_{j \in S_{A}^{C,*}}{\log\left( {1 + {{h_{j}^{RD}}^{2}{SNR}}} \right)}}} \right\rbrack} = {{\frac{1}{n_{F}}\left\{ {{{E\left\lbrack {{\frac{1}{\log\left( {1 + {{h_{i}^{SR}}^{2}{SNR}}} \right)}{h_{i}^{SR}}^{2}} \geq {h_{i}^{RD}}^{2}} \right\rbrack}{P\left( {{h_{i}^{SR}}^{2} \geq {h_{i}^{RD}}^{2}} \right)}} + {{E\left\lbrack {{\frac{1}{\log\left( {1 + {{h_{i}^{RD}}^{2}{SNR}}} \right)}{h_{i}^{SR}}^{2}} < {h_{i}^{RD}}^{2}} \right\rbrack}{P\left( {{h_{i}^{SR}}^{2} < {h_{i}^{RD}}^{2}} \right)}}} \right\}} = {{\frac{1}{n_{F}}{\int_{0}^{\infty}{\int_{\beta}^{\infty}{\frac{1}{\log\left( {1 + {\alpha\;{SNR}}} \right)}\frac{1}{\sigma_{SR}^{2}}{\mathbb{e}}^{- \frac{\alpha}{\sigma_{SR}^{2}}}{\mathbb{d}\alpha}\frac{1}{\sigma_{RD}^{2}}{\mathbb{e}}^{- \frac{\beta}{\sigma_{RD}^{2}}}{\mathbb{d}\beta}}}}} = {\frac{1}{n_{F}}{\Psi\left( {\sigma_{SR}^{2},\sigma_{RD}^{2}} \right)}}}}} & (25) \end{matrix}$

The second equality in (25) holds because σ_(SR) ²=σ_(RD) ².

Combining Equations (23), (24) and (25), the average throughput between S and D, R(S*_(A)), is upper-bounded by Equation (26):

$\begin{matrix} {{\overset{\_}{R}\left( S_{A}^{*} \right)} = {{\frac{1}{n_{F}}\frac{L}{E\left\lbrack {T\left( {H,S_{A}^{*}} \right)} \right\rbrack}} < \left( {\Psi\left( {\sigma_{SR}^{2},\sigma_{RD}^{2}} \right)} \right)^{- 1}}} & (26) \end{matrix}$

To find the lower-bound, S_(A) is chosen to be the entire set of all the subcarriers S_(T):

$\begin{matrix} \begin{matrix} {{E\left\lbrack {T\left( {H,S_{T}} \right)} \right\rbrack} = {{LE}\left\lbrack \frac{1}{\sum\limits_{i \in S_{T}}{\log\left( {1 + {{h_{i}^{SD}}^{2}{SNR}}} \right)}} \right\rbrack}} \\ {= {\frac{L}{n_{F}}{\int_{0}^{\infty}{{\log\left( {1 + {\gamma\;{SNR}}} \right)}\frac{1}{\sigma_{SD}^{2}}{\mathbb{e}}^{- \frac{\gamma}{\sigma_{SD}^{2}}}{\mathbb{d}\gamma}}}}} \\ {= {\frac{L}{n_{F}}{\Omega\left( \sigma_{SD}^{2} \right)}}} \end{matrix} & (27) \end{matrix}$ and R(S*_(A)) is lower-bounded by

$\begin{matrix} {{{\overset{\_}{R}\left( S_{A}^{*} \right)} \geq {\frac{1}{n_{F}}\frac{L}{E\left\lbrack {T\left( {H,S} \right)} \right\rbrack}}} = \left( {\Omega\left( \sigma_{SD}^{2} \right)} \right)^{- 1}} & (28) \end{matrix}$

Defining the gain of the system throughput G to be the ratio of the throughput using relay R(S*_(A)) and the through put without using relay R(S) or equivalently G≡ R(S*_(A))/ R(S). Combining Equations (26) and (28), the upper bound and lower bound of the system throughput and corresponding gain of the system G are summarized as follows: R (S* _(A))≧(Ω(σ_(SD) ²))⁻¹ R (S* _(A))<(Ψ(σ_(SR) ²,σ_(RD) ²))⁻¹ 1≦G≦Ω(σ_(SD) ²)/Ψ(σ_(SR) ²,σ_(RD) ²)

In the high SNR regime, log(1+xSNR)≈log xSNR, both the upper bound and lower bound scale with the order of O(log SNR) and as a result, the average throughput R(S*_(A)) scales with the order of O(log SNR) and the maximum gain with the help of relay G _(high)=lim_(SNR→∞)Ω(σ_(SD) ²)/Ψ(σ_(SR) ², σ_(RD) ²), thus: G _(high)=1

In the low SNR regime, log(1+xSNR)≈xSNR, and the upper bound and low bound scale with a factor of O(SNR) and the maximum gain G _(low)=lim_(SNR→0)Ω(σ_(SD) ²)/Ψ(σ_(SR) ², σ_(RD) ²), thus: G _(low)=σ_(SD) ²σ_(RD) ²σ_(SR) ²/Θ(σ_(SR) ²,σ_(RD) ²) where

${\Theta\left( {\sigma_{SR}^{2},\sigma_{RD}^{2}} \right)} = {\int_{0}^{\infty}{\int_{\beta}^{\infty}{\alpha^{- 1}{\mathbb{e}}^{{- \frac{\alpha}{\sigma_{SR}^{2}}} - \frac{\beta}{\sigma_{RD}^{2}}}{\mathbb{d}\alpha}{{\mathbb{d}\beta}.}}}}$

The efficacy of the above described embodiments can be verified by simulated results, as presented in non-limiting fashion in FIGS. 12 to 15. The throughput performance of the embodiments described herein can be compared with three baseline references, namely the baseline 1: point-to-point OFDM system without relay, the baseline 2: OFDMA relay system with a random subcarrier allocation as well as baseline 3: OFDMA relay system with a brute-force subcarrier allocation. In graph 1200, FIG. 12 shows the total throughput versus SNR with σ_(SR) ²=σ_(RD) ²=5σ_(SD) ². The selection algorithms of the embodiments herein for large N_(L) 1230 and small N_(L) 1240 perform better than baseline 1 (no relay) 1260 or baseline 2 (random selection) systems 1250, 1270 and 1280. The performance of the proposed scheme is also close to baseline 3 (brute-force) 1220 without the computational complexity. Curve 1210 represents the upper bound on total throughput. In graph 1300, FIG. 13 shows the case when σ_(SR) ²=σ_(RD) ²=10σ_(SD) ². Again, the selection algorithms of the embodiments herein for large N_(L) 1330 and small N_(L) 1340 perform better than baseline 1 (no relay) 1360 or baseline 2 (random selection) systems 1350, 1370 and 1380. The performance of the proposed scheme is also close to baseline 3 (brute-force) 1320 without the computational complexity. Curve 1310 represents the upper bound on total throughput.

The optimized subcarrier selection policies (both for large N_(L) and small N_(L)) perform as well as the baseline 3 (brute-force) with negligible performance loss under all SNR conditions. In the low SNR regime, the selection policy for large N_(L) 1330 performs slightly better than that for small N_(L). In the high SNR regime, the system throughput of two policies are nearly the same. Since when SNR increases, lim_(SNR→∞)λ^(T)C^(SD)/E_(H) _(SR) [λ^(T)C^(SD)]=1, and as a result, the uncertainty of the SR link becomes less and less important. Equivalently speaking, in the high SNR regime, the statistics of the SR link provides enough information for the destination node to find the best allocation policy.

In graphs 1400 and 1500, FIGS. 14 and 15 respectively show the relationship between the system throughput gain G and SNR under different conditions (σ_(SR) ²=σ_(RD) ²=5σ_(SD) ² and σ_(SR) ²=σ_(RD) ²=10σ_(SD) ²). The system throughput gain is thus decreasing with respect to SNR, as shown above. However, compared to the point-to-point OFDMA system without relay, the system throughput with the relay's help can be enhanced by more than 30% under a relatively high SNR (e.g., 20 dB). In FIG. 14, curve 1410 is the theoretical upper bound. Curve 1420 represents a brute force algorithm (high complexity), and curves 1430 and 1440 represent the dynamic allocation policy described herein for small N_(L) and large N_(L), respectively. Similarly, in FIG. 15, curve 1510 is the theoretical upper bound. Curve 1520 represents a brute force algorithm (high complexity), and curves 1530 and 1540 represent the dynamic allocation policy described herein for small N_(L) and large N_(L), respectively.

In brief sum, a rateless code was introduced with acknowledgements into OFDMA systems with half-duplex relay. By applying a simple transmission protocol, the subcarrier allocation problem was then formulated as an optimization problem. A distributed subcarrier allocation policy was then provided that utilizes locally available information at the destination node only and the asymptotic throughput performance was analyzed using the renewal process. Simulation results were then evaluated that show the total achievable rate of the selection algorithms described herein scales with the order of O(SNR) in the low SNR regime, and with the order of O(log SNR) in the high SNR regime, which is the same as the case without relay. The system throughput gain is bounded between 1 and Ω(σ_(SD) ²)/Ψ(σ_(SR) ²,σ_(RD) ²). The selection algorithms beneficially have low computational complexity with the order of O(N).

The resource allocation algorithms described herein thus have low complexity and a provable convergence property. In addition, asymptotic throughput performance shows that the system achieves significant throughput gain compared to the point-to-point baseline system without relay as well as the baseline system with random subcarrier allocation.

Although not required, the claimed subject matter can partly be implemented via an operating system, for use by a developer of services for a device or object, and/or included within application software that operates in connection with one or more components of the claimed subject matter. Software may be described in the general context of computer-executable instructions, such as program modules, being executed by one or more computers, such as clients, servers, mobile devices, or other devices. Those skilled in the art will appreciate that the claimed subject matter can also be practiced with other computer system configurations and protocols, where non-limiting implementation details are given.

FIG. 16 thus illustrates an example of a suitable computing system environment 1600 in which the claimed subject matter may be implemented, although as made clear above, the computing system environment 1600 is only one example of a suitable computing environment for a media device and is not intended to suggest any limitation as to the scope of use or functionality of the claimed subject matter. Further, the computing environment 1600 is not intended to suggest any dependency or requirement relating to the claimed subject matter and any one or combination of components illustrated in the example operating environment 1600.

With reference to FIG. 16, an example of a remote device for implementing various aspects described herein includes a general purpose computing device in the form of a computer 1610. Components of computer 1610 can include, but are not limited to, a processing unit 1620, a system memory 1630, and a system bus 1621 that couples various system components including the system memory to the processing unit 1620. The system bus 1621 can be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.

Computer 1610 can include a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 1610. By way of example, and not limitation, computer readable media can comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile as well as removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 1610. Communication media can embody computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and can include any suitable information delivery media.

The system memory 1630 can include computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) and/or random access memory (RAM). A basic input/output system (BIOS), containing the basic routines that help to transfer information between elements within computer 1610, such as during start-up, can be stored in memory 1630. Memory 1630 can also contain data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 1620. By way of non-limiting example, memory 1630 can also include an operating system, application programs, other program modules, and program data.

The computer 1610 can also include other removable/non-removable, volatile/nonvolatile computer storage media. For example, computer 1610 can include a hard disk drive that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive that reads from or writes to a removable, nonvolatile magnetic disk, and/or an optical disk drive that reads from or writes to a removable, nonvolatile optical disk, such as a CD-ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM and the like. A hard disk drive can be connected to the system bus 1621 through a non-removable memory interface such as an interface, and a magnetic disk drive or optical disk drive can be connected to the system bus 1621 by a removable memory interface, such as an interface.

A user can enter commands and information into the computer 1610 through input devices such as a keyboard or a pointing device such as a mouse, trackball, touch pad, and/or other pointing device. Other input devices can include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and/or other input devices can be connected to the processing unit 1620 through user input 1640 and associated interface(s) that are coupled to the system bus 1621, but can be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A graphics subsystem can also be connected to the system bus 1621. In addition, a monitor or other type of display device can be connected to the system bus 1621 via an interface, such as output interface 1650, which can in turn communicate with video memory. In addition to a monitor, computers can also include other peripheral output devices, such as speakers and/or a printer, which can also be connected through output interface 1650.

The computer 1610 can operate in a networked or distributed environment using logical connections to one or more other remote computers, such as remote computer 1670, which can in turn have media capabilities different from device 1610. The remote computer 1670 can be a personal computer, a server, a router, a network PC, a peer device or other common network node, and/or any other remote media consumption or transmission device, and can include any or all of the elements described above relative to the computer 1610. The logical connections depicted in FIG. 16 include a network 1671, such local area network (LAN) or a wide area network (WAN), but can also include other networks/buses. Such networking environments are commonplace in homes, offices, enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, the computer 1610 is connected to the LAN 1671 through a network interface or adapter. When used in a WAN networking environment, the computer 1610 can include a communications component, such as a modem, or other means for establishing communications over the WAN, such as the Internet. A communications component, such as a modem, which can be internal or external, can be connected to the system bus 1621 via the user input interface at input 1640 and/or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 1610, or portions thereof, can be stored in a remote memory storage device. It should be appreciated that the network connections shown and described are exemplary and other means of establishing a communications link between the computers can be used.

Turning now to FIG. 17, an overview of a network environment in which the claimed subject matter can be implemented is illustrated. The above-described systems and methodologies for timing synchronization may be applied to any wireless communication network; however, the following description sets forth an exemplary, non-limiting operating environment for said systems and methodologies. The below-described operating environment should be considered non-exhaustive, and thus the below-described network architecture is merely an example of a network architecture into which the claimed subject matter can be incorporated. It is to be appreciated that the claimed subject matter can be incorporated into any now existing or future alternative architectures for communication networks as well.

FIG. 17 illustrates various aspects of the global system for mobile communication (GSM). GSM is one of the most widely utilized wireless access systems in today's fast growing communications systems. GSM provides circuit-switched data services to subscribers, such as mobile telephone or computer users. General Packet Radio Service (“GPRS”), which is an extension to GSM technology, introduces packet switching to GSM networks. GPRS uses a packet-based wireless communication technology to transfer high and low speed data and signaling in an efficient manner. GPRS optimizes the use of network and radio resources, thus enabling the cost effective and efficient use of GSM network resources for packet mode applications.

As one of ordinary skill in the art can appreciate, the exemplary GSM/GPRS environment and services described herein can also be extended to 3G services, such as Universal Mobile Telephone System (“UMTS”), Frequency Division Duplexing (“FDD”) and Time Division Duplexing (“TDD”), High Speed Packet Data Access (“HSPDA”), cdma2000 1× Evolution Data Optimized (“EVDO”), Code Division Multiple Access-2000 (“cdma2000 3×”), Time Division Synchronous Code Division Multiple Access (“TD-SCDMA”), Wideband Code Division Multiple Access (“WCDMA”), Enhanced Data GSM Environment (“EDGE”), International Mobile Telecommunications-2000 (“IMT-2000”), Digital Enhanced Cordless Telecommunications (“DECT”), etc., as well as to other network services that shall become available in time. In this regard, the timing synchronization techniques described herein may be applied independently of the method of data transport, and does not depend on any particular network architecture or underlying protocols.

FIG. 17 depicts an overall block diagram of an exemplary packet-based mobile cellular network environment, such as a GPRS network, in which the claimed subject matter can be practiced. Such an environment can include a plurality of Base Station Subsystems (B SS) 1700 (only one is shown), each of which can comprise a Base Station Controller (BSC) 1702 serving one or more Base Transceiver Stations (BTS) such as BTS 1704. BTS 1704 can serve as an access point where mobile subscriber devices 1750 become connected to the wireless network. In establishing a connection between a mobile subscriber device 1750 and a BTS 1704, one or more timing synchronization techniques as described supra can be utilized.

In one example, packet traffic originating from mobile subscriber 1750 is transported over the air interface to a BTS 1704, and from the BTS 1704 to the BSC 1702. Base station subsystems, such as BSS 1700, are a part of internal frame relay network 1710 that can include Service GPRS Support Nodes (“SGSN”) such as SGSN 1712 and 1714. Each SGSN is in turn connected to an internal packet network 1720 through which a SGSN 1712, 1714, etc., can route data packets to and from a plurality of gateway GPRS support nodes (GGSN) 1722, 1724, 1726, etc. As illustrated, SGSN 1714 and GGSNs 1722, 1724, and 1726 are part of internal packet network 1720. Gateway GPRS serving nodes 1722, 1724 and 1726 can provide an interface to external Internet Protocol (“IP”) networks such as Public Land Mobile Network (“PLMN”) 1745, corporate intranets 1740, or Fixed-End System (“FES”) or the public Internet 1730. As illustrated, subscriber corporate network 1740 can be connected to GGSN 1722 via firewall 1732; and PLMN 1745 can be connected to GGSN 1724 via boarder gateway router 1734. The Remote Authentication Dial-In User Service (“RADIUS”) server 1742 may also be used for caller authentication when a user of a mobile subscriber device 1750 calls corporate network 1740.

Generally, there can be four different cell sizes in a GSM network—macro, micro, pico, and umbrella cells. The coverage area of each cell is different in different environments. Macro cells can be regarded as cells where the base station antenna is installed in a mast or a building above average roof top level. Micro cells are cells whose antenna height is under average roof top level; they are typically used in urban areas. Pico cells are small cells having a diameter is a few dozen meters; they are mainly used indoors. On the other hand, umbrella cells are used to cover shadowed regions of smaller cells and fill in gaps in coverage between those cells.

The word “exemplary” is used herein to mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. In addition, any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor is it meant to preclude equivalent exemplary structures and techniques known to those of ordinary skill in the art. Furthermore, to the extent that the terms “includes,” “has,” “contains,” and other similar words are used in either the detailed description or the claims, for the avoidance of doubt, such terms are intended to be inclusive in a manner similar to the term “comprising” as an open transition word without precluding any additional or other elements.

The aforementioned systems have been described with respect to interaction between several components. It can be appreciated that such systems and components can include those components or specified sub-components, some of the specified components or sub-components, and/or additional components, and according to various permutations and combinations of the foregoing. Sub-components can also be implemented as components communicatively coupled to other components rather than included within parent components (hierarchical). Additionally, it should be noted that one or more components may be combined into a single component providing aggregate functionality or divided into several separate sub-components, and that any one or more middle layers, such as a management layer, may be provided to communicatively couple to such sub-components in order to provide integrated functionality. Any components described herein may also interact with one or more other components not specifically described herein but generally known by those of skill in the art.

In view of the exemplary systems described supra, methodologies that may be implemented in accordance with the described subject matter will be better appreciated with reference to the flowcharts of the various figures. While for purposes of simplicity of explanation, the methodologies are shown and described as a series of blocks, it is to be understood and appreciated that the claimed subject matter is not limited by the order of the blocks, as some blocks may occur in different orders and/or concurrently with other blocks from what is depicted and described herein. Where non-sequential, or branched, flow is illustrated via flowchart, it can be appreciated that various other branches, flow paths, and orders of the blocks, may be implemented which achieve the same or a similar result. Moreover, not all illustrated blocks may be required to implement the methodologies described hereinafter.

In addition to the various embodiments described herein, it is to be understood that other similar embodiments can be used or modifications and additions can be made to the described embodiment(s) for performing the same or equivalent function of the corresponding embodiment(s) without deviating therefrom. Still further, multiple processing chips or multiple devices can share the performance of one or more functions described herein, and similarly, storage can be effected across a plurality of devices. Accordingly, no single embodiment shall be considered limiting, but rather the various embodiments and their equivalents should be construed consistently with the breadth, spirit and scope in accordance with the appended claims.

APPENDIX A Proof of Theorem I

Given an aggregate CSI H=(H^(SD),H^(RD),H^(SD)) in a fading block, the following three cases can happen. I(x;y|x ¹ ,H ^(SD) ,H ^(SR) ,H ^(RD) ,S)≧I(x;y ¹ |x ¹ ,H ^(SD) ,H ^(SR) ,H ^(RD) ,S)  Case 1)

In this case, the destination can always decode before the relay. As a result, no relay is needed and the achievable rate is given by the mutual information between the transmitted symbols x at the source node and the received symbols y at the destination node, I(x;y|x¹,H^(SD),H^(SR),H^(RD),S)=logdet(I+H^(SD)SQ(H^(SD)S)^(H)), where the Gaussian code is applied and Q=SNR·I since uniform power allocation is assumed. Recalling the definition of S_(A) provided above, this expression can be further simplified into a scalar value, given by Σ_(iεS) _(A) log(1+|h_(i) ^(SD)|²SNR), where h_(i) ^(SD) denotes the fading coefficient of i-th subcarrier in the SD link. I(x;y|x ¹ ,H ^(SD) ,H ^(SR) ,H ^(RD) ,S)<I(x;y ¹ |x ¹ ,H ^(SD) ,H ^(SR) ,H ^(RD) ,S) and I(x;y ¹ |x ¹ ,H ^(SD) ,H ^(SR) ,H ^(RD) ,S)≦I(x,x ¹ ;y ¹ |H ^(SD) ,H ^(SR) ,H ^(RD) ,S)  Case 2)

In this case, as shown in FIG. 10, the relay can help to decode and the bottleneck of the transmission becomes the SR link. Therefore, by the max-flow-min-cut theorem, the achievable rate is limited by the SR link. To be more specific, it is bounded by the mutual information between the transmitted symbols x and the received symbols y¹ at the relay node, I(x;y¹|x¹,H^(SD),H^(SR),H^(RD),S)=log det(I+H^(SR)SQ(H^(SR)S)^(H)). Following the same reasoning, the achievable rate can be expressed as Σ_(iεS) _(A) log(1+|h_(i) ^(SR)|²SNR) and h_(i) ^(SR) corresponds to the fading coefficient of the i-th subcarrier in the SR link. I(x;y|x ¹ ,H ^(SD) ,H ^(SR) ,H ^(RD) ,S)<I(x;y ¹ |x ¹ ,H ^(SD) ,H ^(SR) ,H ^(RD) ,S) and I(x;y ¹ |x ¹ ,H ^(SD) ,H ^(SR) ,H ^(RD) ,S)>I(x,x ¹ ;y ¹ |H ^(SD) ,H ^(SR) ,H ^(RD) ,S)

In this case as shown in FIG. 11, the relay can help to decode and the bottleneck of the transmission is the source plus relay to the destination channel. If the stack size at the relay node d is allowed to be sufficiently large, the relay will always transmit. Therefore, the achievable rate is the mutual information received at the destination node (including the information transmitted from the source and the relay),

I(x, x¹; y|H^(SD), H^(SR), H^(RD), S)=logdet(I+H^(SD)SQ(H^(SD)S)^(H))+logdet(I+H^(RD) SQ(H^(RD) S)^(H)).

Applying the same procedure, the achievable rate can be expressed as:

${{\sum\limits_{i \in S_{A}}{\log\left( {1 + {{h_{i}^{SD}}^{2}{SNR}}} \right)}} + {\sum\limits_{j \in S_{A}^{C}}{\log\left( {1 + {{h_{j}^{RD}}^{2}{SNR}}} \right)}}},$ where h_(i) ^(SD) and h_(j) ^(RD) denote the fading coefficients of i-th subcarrier in the SD link and j-th subcarrier in the RD link, respectively.

APPENDIX B Proof of Lemma 1

From basic probability theory, h(λ, H^(SD), H^(RD)) can be transformed as follows to Equation (29). h(λ,H ^(SD) ,H ^(RD))=λ^(T) C ^(SD) E _(H) _(SR) [I(λ^(T) C ^(SD)≧λ^(T) C ^(SR))]+E _(H) _(SR) [λ^(T) C ^(SR) I(λ^(T) C ^(SD)<λ^(T) C ^(SR)<λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD))]+(λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD))E _(H) _(SR) [I(λ^(T) C ^(SR)≧λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD))]=λ^(T) C ^(SD) P _(λ) _(T) _(C) _(SR) (λ^(T) C ^(SD))+E _(H) _(SR) [λ^(T) C ^(SR)|λ^(T) C ^(SD)>λ^(T) C ^(SR)>λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD)]+(λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD))(1−P _(λ) _(T) _(C) _(SR) (λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD)))  (29) where I(•) denotes the indicator function and P_(x)(•) denotes the cumulative distribution function (c.d.f.) of the corresponding random variable x.

Let y_(i)=λ_(i)C_(i) ^(SR) and y=λ^(T)C^(SR)=Σ_(i=1) ^(n) ^(F) y_(i). The p.d.f. of the random variable y_(i) and its corresponding characteristic function are given by Equations (30) and (31):

$\begin{matrix} \begin{matrix} {{p_{y_{i}}\left( y_{i} \right)} = {P_{y_{i}}^{\prime}\left( y_{i} \right)}} \\ {= {P_{y_{i}}^{\prime}\left( {{\lambda_{i}{\log\left( {1 + {{SNR}{h_{i}^{SR}}^{2}}} \right)}} \leq y_{i}} \right)}} \\ {= {P_{y_{i}}^{\prime}\left( {{h_{i}^{SR}}^{2} \leq \frac{{\mathbb{e}}^{\frac{y_{i}\ln\; 2}{\lambda_{i}}} - 1}{SNR}} \right)}} \\ {= \left( {1 - {\mathbb{e}}^{- \frac{{{\mathbb{e}}\;\frac{y_{i}\ln\; 2}{\lambda_{i}}} - 1}{\sigma_{SR}^{2}{SNR}}}} \right)^{\prime}} \\ {= {\frac{\ln\; 2}{\lambda_{i}}{\mathbb{e}}^{\frac{1}{\sigma_{SR}^{2}{SNR}}}{\mathbb{e}}^{{- {\mathbb{e}}^{\frac{{y_{i}\ln\; 2} - {\lambda_{i}{\ln{({\sigma_{SR}^{2}{SNR}})}}}}{\lambda_{i}}}} + \frac{{y_{i}\ln\; 2} - {\lambda_{i}{\ln{({\sigma_{SR}^{2}{SNR}})}}}}{\lambda_{i}}}}} \end{matrix} & (30) \\ \begin{matrix} {{\Phi_{i}(\omega)} = {\int_{- \infty}^{\infty}{{p_{y_{i}}\left( y_{i} \right)}{\mathbb{e}}^{{j\omega}\; y_{i}}{\mathbb{d}y_{i}}}}} \\ {= {{\Gamma\left( {1 + {{j\omega}\frac{\lambda_{i}}{\ln\; 2}}} \right)}{\mathbb{e}}^{{j\omega\lambda}_{i}{\log_{2}{({\sigma_{SR}^{2}{SNR}})}}}}} \end{matrix} & (31) \end{matrix}$ where σ_(SR) ² is the variance of the random variable and h_(i) ^(SR) and Γ(•) denotes the Gamma Function. Because of the independency of the random variables y₁, y₂, . . . y_(n) _(F) , the characteristic function of the random variable y is the product of each random variable y_(i) and given by Equation (32):

$\begin{matrix} {{\Phi(\omega)} = {{\prod\limits_{i = 1}^{n_{P}}\left\lbrack {\Phi_{i}(\omega)} \right\rbrack} = {\prod\limits_{i = 1}^{n_{P}}\left\lbrack {{\Gamma\left( {1 + {{j\omega}\frac{\lambda_{i}}{\ln\; 2}}} \right)}{\mathbb{e}}^{{j\omega\lambda}_{i}{\log_{2}{({\sigma_{SR}^{2}{SNR}})}}}} \right\rbrack}}} & (32) \end{matrix}$

To find the p.d.f. of the random variable y, the Inverse Fourier Transform of the characteristic function Φ(ω) is taken to obtain Equation (33):

$\begin{matrix} {{p_{y}(y)} = {{F^{- 1}\left\lbrack {\Phi(\omega)} \right\rbrack} = {\frac{1}{2\pi}{\int_{- \infty}^{\infty}{{\Phi(\omega)}{\mathbb{e}}^{{- {j\omega}}\; y}{\mathbb{d}\omega}}}}}} & (33) \end{matrix}$

Thus, Equation (29) can be evaluated as: h(λ,H ^(SD) ,H ^(RD))=λ^(T) C ^(SD)∫₀ ^(λ) ^(T) ^(C) ^(SD) p _(y)(y)dy+∫ _(λ) _(T) _(C) _(SD) ^(λ) ^(T) ^(C) ^(SD) ^(+(1−λ)) ^(T) ^(C) ^(RD) yp _(y)(y)dy+(λ^(T) C ^(SD)+(1−λ)^(T) C ^(RD))∫_(λ) _(T) _(C) _(SD) _(+(1−λ)) _(T) _(C) _(RD) p _(y)(y)dy  (34)

APPENDIX C Proof of Lemma 2

Recall that a vector f is a subgradient of g(λ) in λ, if for all λ′ g(λ′)≧g(λ)+f ^(T)(λ′−λ).  (35)

By definition,

$\begin{matrix} {{g(\lambda)} = \left\{ \begin{matrix} {{\lambda^{T}C^{SD}},} & {{for}\mspace{14mu}{Case}\mspace{14mu} 1} \\ {{\lambda^{T}C^{SR}},} & {{for}\mspace{14mu}{Case}\mspace{14mu} 2a} \\ {{{\lambda^{T}\left( {C^{SD} - C^{RD}} \right)} + {1^{T}C^{RD}}},} & {{for}\mspace{14mu}{Case}\mspace{14mu} 2b} \end{matrix} \right.} & (36) \end{matrix}$

For case 1, g(λ′)=λ′C^(SD)=λC^(SD)+(λ′−λ)^(T)C^(SD)≧g(λ)+(C^(SD))^(T)(λ′−λ), thus verifying the definition of subgradient (35).

For case 2a, g (λ′)=λ′C^(SR)=λC^(SR)+(λ′−λ)^(T)C^(SR)≧g(λ)+(C^(SR))^(T)(λ′−λ), thus matching the definition of subgradient (35).

For case 2b, g(λ′)=λ′^(T)(C^(SD)−C^(RD))+1^(T)C^(RD)=λ^(T)(C^(SD)−C^(RD))+1^(T)C^(RD)+(λ′−λ)^(T)(C^(SD)−C^(RD))≧g(λ)+(λ′−λ)^(T)(C^(SD)−C^(RD)), thus satisfying the definition of subgradient (35).

Combining the three cases, Lemma 2 is demonstrated. 

What is claimed is:
 1. A device, comprising: a memory that stores computer-executable components; and a processor, communicatively coupled to the memory, that executes or facilitates execution of the computer-executable components, the computer-executable components including: a wireless communications component configured to communicate with a source node via a first link and configured to communicate with a relay node via a second link; and a decoder component configured to decode a current message that is transmitted by the source node to the wireless communications component and the relay node as a function of information provided by the relay node in response to a determination that the decoder component is not able to decode the current message before the relay node and that a different memory associated with the relay node is not at a defined level, and decode the current message without the information provided by the relay node in response to an acknowledgment message that indicates that the current message is decodable by the relay node and a determination that the decoder component is able to decode the current message before the relay node.
 2. The device of claim 1, wherein the wireless communications component is configured to receive the acknowledgement message via the second link.
 3. The device of claim 2, wherein the computer-executable components further comprise: a subcarrier resource allocation component configured to allocate subcarrier resources in response to the determination that the different memory associated with the relay node is not at the defined level.
 4. The device of claim 1, wherein the information provided by the relay node includes one or more symbols of the current message.
 5. The device of claim 1, wherein the decoder component is configured to receive a re-encoded message from the relay node in response to the determination that the decoder component is not able to decode the current message before the relay node and that the different memory associated with the relay node is not at the defined level.
 6. The device of claim 1, wherein the wireless communications component is configured to communicate with the source node and the relay node according to a transmission protocol based at least in part on rateless codes.
 7. The device of claim 1, wherein a third link between the source node and the relay node is unavailable to the wireless communications component.
 8. A method, comprising: receiving, by a system including a processor, a current message from a source node according to a transmission protocol; determining whether the current message is to be decoded, based at least in part on information provided by a relay node that also receives the current message from the source node, in response to receiving an acknowledgement message indicating that the current message is decodable by the relay node; decoding the current message without the information provided by the relay node in response to the acknowledgment message indicting that the current message is decodable by the relay node and a determination that the current message is able to be decoded before the relay node; and decoding the current message based on the information provided by the relay node in response to a determination that the current message is not able to be decoded before the relay node is able to decode the current message and that a memory associated with the relay node is not at a defined capacity.
 9. The method of claim 8, further comprising: transmitting a request message for the relay node to decode the current message in response to the determination that the current message is not able to be decoded before the relay node is able to decode the current message and that the memory associated with the relay node is not at the defined capacity.
 10. The method of claim 9, wherein the decoding the current message based on the information provided by the relay node comprises receiving a re-encoded message from the relay node in response to the determination that the current message is not able to be decoded before the relay node is able to decode the current message and that the memory associated with the relay node is not at the defined capacity.
 11. The method of claim 8, further comprising: decoding the current message based on the information received from the relay node and other information received from the source node in response to the determination that the current message is not able to be decoded before the relay node is able to decode the current message and that the memory associated with the relay node is not at the defined capacity.
 12. The method of claim 8, further comprising: transmitting a different acknowledgment message to the source node in response to the decoding.
 13. A system, comprising: a destination node, including a processor and a memory, configured to receive a current message from a source node that was also directed to a relay node, to decode at least part of the current message without information provided by the relay node in response to reception of an acknowledgment message that indicates that the at least part of the current message is decodable by the relay node and a determination that the destination node is able to decode at least the part of the current message before the relay node, and to decode at least another part of the current message based at least in part on the information provided by the relay node in response to a determination that the destination node is not able to decode at least the other part of the current message before the relay node and that a memory associated with the relay node is not at a defined level.
 14. The system of claim 13, wherein the destination node is configured to decode at least the part of the current message based on the information provided by the relay node in response to a determination that the destination node is not able to decode at least the part of the current message before the relay node and that the memory associated with the relay node is not at the defined level.
 15. The system of claim 13, wherein the destination node transmits a different acknowledgment message to the source node in response to the determination that the destination node is able to decode at least the other part of the current message before the relay node.
 16. The system of claim 13, wherein the destination node is configured to receive a re-encoded message in response to the determination that the destination node is not able to decode at least the other part of the current message before the relay node and that the memory associated with the relay node is not at the defined level.
 17. The system of claim 16, wherein the destination node is configured to receive the re-encoded message from the relay node. 